package com.alex.core.domain.device;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单需要的设备信息
 * @author cb
 * @date 2019/10/25 15:32
 */
@Data
public class DeviceDTO {

    // ==================================
    // 设备
    // ==================================

    /**
     * 设备编号
     */
    private Integer deviceId;

    /**
     * 设备编码
     */
    private String deviceNumber;

    /**
     * 设备所属站点
     */
    private Integer siteId;

    /**
     * 安装激活：0未出厂，1未激活，2已激活
     */
    private Integer isInstalledActivating;

    /**
     * 是否阿里：0不是，1是
     */
    private Integer isAlipayPartner;

    /**
     * 是否IOT设备：0不是、1是
     */
    private Integer isIot;

    /**
     * 是否在线（1在线，2离线）
     */
    private Integer online;

    /**
     * 设备同步时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date syncTime;

    /**
     * 设备名称
     */
    private String deviceName;

    /**
     * 设备类型(1充电桩 2充电柜 3直流汽车充电桩 7交流汽车充电桩 4电吹风 5洗衣机 6手机充电站 8热水器控制器)
     */
    private Integer deviceType;

    /**
     * 设备充电类型：0按时间、1按电度数、2按功率
     */
    private Integer deviceBillingType;

    /**
     * 设备所在省份
     */
    private String province;

    /**
     * 设备所在市
     */
    private String city;

    /**
     * 设备所在区/县
     */
    private String area;

    /**
     * 设备安装地址
     */
    private String installAddress;

    /**
     * 设备版本
     */
    private String version;

    /**
     * ip
     */
    private String ip;

    // ====================================
    // 站点
    // ====================================

    /**
     * 站点名称
     */
    private String name;

    /**
     * 商户ID
     */
    private Integer tenantId;

    // =====================================
    // 设备配置
    // =====================================

    /**
     * 取消充电退款最长时间（单位分钟）
     */
    private Integer deviceRefundTime;

    /**
     * 是否允许取消充电：0是，1否
     */
    private Integer deviceIsrefund;

    // ===================================
    // 设备路数
    // ===================================

    /**
     * 状态：1使用中，2空闲，3故障,4我预约，5其他人预约
     */
    private Integer status;

    // ========================================
    // 按时间收费
    // ========================================

    /**
     * 设备默认基础金额
     */
    private Integer deviceDefaultMoney;

    /**
     * 时间类型,充电是按（分钟，小时）计算
     * 1-小时，2-分钟
     */
    private Integer deviceTimeType;

    /**
     * 设备默认基础时间
     */
    private Integer deviceDefaultHour;

    // =======================
    // 按电量
    // =======================

    @ApiModelProperty(value = "电度数")
    private BigDecimal deviceElectricityNumber;

    @ApiModelProperty(value = "电度数对应的金额")
    private Integer deviceElectricityMoney;

    /**
     * 设备的收费方式
     */
    private String diviceBilling;

    /**
     * 收费金额
     */
    private String deviceBillingPrice;

    /**
     * 归属范围
     */
    private String owner;

}
